-
Notifications
You must be signed in to change notification settings - Fork 917
Adding k8s deploy action to cloud assets #7826
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
e653008 to
011a056
Compare
enterprise/libs.fabric8/src/org/netbeans/libs/fabric8/Bundle.properties
Outdated
Show resolved
Hide resolved
enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/assets/RunInClusterAction.java
Show resolved
Hide resolved
enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/assets/RunInClusterAction.java
Outdated
Show resolved
Hide resolved
enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/assets/RunInClusterAction.java
Show resolved
Hide resolved
enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/assets/RunInClusterAction.java
Show resolved
Hide resolved
enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/assets/RunInClusterAction.java
Show resolved
Hide resolved
7f945d5 to
4579958
Compare
4579958 to
d7b785f
Compare
|
@jhorvath with the review in #8034 multiple questions/problems are raised:
The license file must be fixed and I think the whole implementation needs rethinking. If every cloud vendor adds 40MB, we will hit limits quickly:
Are the first global player, but then why stop there? I want my local cloud infrastructure supported as well, so
Ok, only 320MB, but that was global + a short list from germany. So what is the plan here? |
|
@matthiasblaesing To clarify, this pull request adds 16.5MB of external dependencies. The Fabric8 library provides generic Kubernetes support and is compatible with all cloud providers worldwide. As such, the total remains 16.5MB. We plan to retain Fabric8 because it offers the smallest possible set of external dependencies. |
|
And I'll check the license |
|
@jhorvath yes I understand this. I looked at the only user of |
@jhorvath I'm curious who the "we" is in that sentence, as multiple members of the Apache NetBeans PMC seem to be querying that plan currently. That conversation should probably end up in a dev@ thread rather than at the bottom of a closed PR though. |
|
If I understand this correctly, the JARs contain structures binding JSON structures. If I remember correctly, I saw such monster JARs generated from the SOAP interface for VMWare VSphere. In the end we decided to bite the bullet and accept the huge JAR as that made the development much more manageable. So the question is: Do we really need all the JARs (The OCI bindings give me more worries, than generic Kubernetes, as the latter is indeed multi-vendor) and how much work would it be to directly build the JSON structures or bind a subset directly with jackson? The size of the sigfile could be worked around by not generating a sigfile. |
|
In this PR, only the JARs required to support Kubernetes were added. Regarding whether all of these are necessary: yes, they are. The Kubernetes API is complex, and implementing all the required calls at the REST level is beyond the scope of a single developer. |
@jhorvath Agreed, proposals which would try to generate or re-implement the k8 model would pretty much guarantee a veto from me since this would be both unmaintainable and also not observable given the API footprint. Using the dependency is the lesser evil there but I would rather try to find ways to avoid this situation entirely. NetBeans was always known for good tooling integration - do doubt. However, this can often also be achieved by integrating with the project build or tools in the environment. A project will likely know how to deploy itself to a cluster since nobody deploys IDEs to CI. NB already bundles maven and gradle which could delegate to plugins. Maybe it can call the cli tool. Delegating to projects, if possible, is often the ideal solution since they know exactly what versions they have to work with. @sdedic @jhorvath Regarding the dependencies specifically. We do know that there is no dependabot and nothing what makes dependency updates a one-click operation in this repo. By integrating this, there is also the shared responsibility (esp from those who approved and merged) to keep those dependencies up to date before releases. We have a manually triggered dep checker workflow, but thats where the convenience ends unfortunately. @matthiasblaesing already mentioned it, but this does also add yet another http client which is not ideal from the attack surface perspective. Please check if there is a java.net.http variant, if not, please have especially an eye on that dependency between releases. |
|
I would like to steer the debate to be more constructive. Oracle Cloud SDK is here since January 2022 and was properly reviewed by @matthiasblaesing and @JaroslavTulach before it was merged into master. For reference, see PR #3352. |
Actually it does: https://central.sonatype.com/artifact/io.fabric8/kubernetes-httpclient-jdk |
Adding a few points like this to a PR is very helpful to communicate why something is implemented how it is. The dependencies were noticed during API snapshots and all we could see was one sentence and a sig file with 130k lines (and some license issues which are now resolved). Lets try to do open source properly. |
Implementing an action to deploy a selected container version to a Kubernetes cluster using cloud assets.